import sqlite3
import datetime

# 连接到SQLite数据库
conn = sqlite3.connect('app.db')
cursor = conn.cursor()

# 新的超级管理员手机号
new_phone = '888888'
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

try:
    # 检查是否存在超级管理员账号
    cursor.execute("SELECT id, phone, admin_level FROM user WHERE is_admin = 1 AND admin_level >= 2;")
    super_admins = cursor.fetchall()
    
    if super_admins:
        print("找到以下超级管理员账号：")
        for admin in super_admins:
            print(f"ID: {admin[0]}, 手机号: {admin[1]}, 管理员级别: {admin[2]}")
        
        # 修改第一个超级管理员的手机号
        admin_id = super_admins[0][0]
        
        # 先检查新手机号是否已被使用
        cursor.execute("SELECT id FROM user WHERE phone = ?;", (new_phone,))
        existing_user = cursor.fetchone()
        
        if existing_user:
            # 如果新手机号已被使用，且不是当前超级管理员
            if existing_user[0] != admin_id:
                print(f"警告: 手机号 {new_phone} 已被其他用户使用(ID: {existing_user[0]})")
                # 询问是否要继续
                confirm = input("是否继续修改超级管理员手机号？(y/n): ")
                if confirm.lower() != 'y':
                    print("操作已取消")
                    conn.close()
                    exit()
        
        # 修改超级管理员手机号
        cursor.execute(
            "UPDATE user SET phone = ?, updated_at = ? WHERE id = ?;",
            (new_phone, now, admin_id)
        )
        conn.commit()
        print(f"超级管理员(ID: {admin_id})的手机号已成功修改为: {new_phone}")
    else:
        print("未找到超级管理员账号")
        
        # 检查是否存在普通管理员账号
        cursor.execute("SELECT id, phone, admin_level FROM user WHERE is_admin = 1;")
        normal_admins = cursor.fetchall()
        
        if normal_admins:
            print("找到以下普通管理员账号：")
            for admin in normal_admins:
                print(f"ID: {admin[0]}, 手机号: {admin[1]}, 管理员级别: {admin[2]}")
            print("请将其中一个提升为超级管理员，然后再运行此脚本")
        else:
            print("系统中没有管理员账号，请运行 init_admin.py 创建超级管理员账号")

except sqlite3.Error as e:
    print(f"操作数据库时出错: {e}")
    conn.rollback()
finally:
    # 关闭连接
    cursor.close()
    conn.close()

print('操作完成')